400 LOCATE 4,35:PRINT INT(F): IF F=0 THEN SOUND 99,0:BEEP
410 RETURN
420 GG1=INT(40-40*F/F0):IF GG1=G1 THEN GOTO 430 ELSE LINE(241,GG1)-(257,GG1),0
430 G1=GG1:GG2=INT(5+SY/(2.8+(S>ADLAND))):IF GG2<0 THEN GG2=0 ELSE IF GG2>40 THEN GG2=40
440 IF GG2=G2 THEN GOTO 450 ELSE LINE(273,GG2)-(289,GG2),3:IF G2<11 AND G2>4 THEN LINE(273,G2)-(289,G2),1 ELSE LINE(273,G2)-(289,G2),2
450 G2=GG2:GG3=INT(40-40*T/19):IF GG3=G3 THEN GOTO 460 ELSE LINE(304,GG3)-(319,GG3),3:IF G3<26 AND G3>14 THEN LINE(304,G3)-(319,G3),1 ELSE LINE(304,G3)-(319,G3),2
460 G3=GG3:IF F=0 THEN SOUND 99,0:BEEP
470 RETURN
480 '######## Check KEYBOARD for commands ############################
950 LOCATE 11,1:PRINT"Your extra fuel makes your score = " S CHR$(13) CHR$(13) " (Max. score to date is " SCOREMAX " by " INIT$ ")":GOTO 830
960 LOCATE 11,1:PRINT"Your score is now " S " !!!!!!" CHR$(13) "This is the highest score up to now !!" CHR$(13) "Type in 3 initials for posterity :"
970 DEF SEG:POKE 106,0:INPUT "initials: ",A$:INIT$=LEFT$(A$,3):OPEN "lander.scr" FOR OUTPUT AS #3:PRINT#3,SCOREMAX,INIT$:CLOSE:GOSUB 790:RETURN
980 GOSUB 1000:GOSUB 1010:GOSUB 790:LOCATE 8,1:PRINT"Almost a good landing, but much too fast":LOCATE 10,2:PRINT"Your Fall Rate must be less than "15-5*ADVAN:GOTO 820
990 GOSUB 1000:GOSUB 1010:GOSUB 790:LOCATE 8,1:PRINT"Good landing, but please land on 2 feet!":GOTO 820
1000 T=0:GOSUB 360:RETURN ' Show ship with no rocket blast.
1010 SOUND 99,0:FOR J=1 TO 3:FOR K=1000 TO 2000 STEP 20:SOUND K,0.182:NEXT:NEXT:S=INT(S*0.7):RETURN ' Crash sound
1050 '############### Play MUSIC ##########################################
1060 SOUND 99,0:PLAY"MB":FOR J=C TO D:SOUND TUNE1(J,0),TUNE1(J,1)/2:IF TUNE1(J,0)><0 AND TUNE1(J,1)><1 THEN SOUND 32767,1
1070 NEXT
1080 RETURN'Above is "Stars and Stripes"
1090 SCREEN 0,1:COLOR 0,7,7:CLS:LOCATE 5,9:PRINT"Your score is now : " S:COLOR 15:LOCATE 7,5:PRINT"You will now be in Advanced-Lander ! !":LOCATE 12,1:COLOR 1: PRINT"If you maneuver the lander through the RED dots above the landing field with a"
1100 PRINT"fall rate less than 10, you will end the landing in Advanced-Lander. The landwill be enlarged to allow you to make aprecision landing. Your final fall rate must be less than ";
1110 COLOR 0:PRINT"-- 10 --",:COLOR 1:PRINT"for the landing to be OK.":LOCATE 24,7,0:COLOR 3:PRINT"Press any key to continue.";
1120 A$=INKEY$:IF A$="" GOTO 1120 ELSE GOTO 50
1130 '###################### START PROGRAM #########################
1140 DEF SEG=0:IF (109=PEEK (&H410))GOTO 1160' go to color screen if on Bw
1150 POKE &H410,(PEEK(&H410) AND &HCF) OR &H20:SCREEN 0
1160 KEY OFF:SCREEN 0,1:COLOR 4,7,7:WIDTH 40:CLS:LOCATE 4,12,0:PRINT "IBM IBM IBM"
1170 COLOR 7,1:LOCATE 6,12,0:PRINT "Personal Computer"
1180 COLOR 0,7:LOCATE 9,9,0:PRINT CHR$(201)+STRING$(21,205)+CHR$(187)
1300 CLS:COLOR 0:PRINT CHR$(13) "The object is to successfully land the space-craft on the landing pad. This is done by changing the rocket thrust and direction using the four position keys."
1520 LAY(I)=LAY(I)+SQR(LAY(I))*(0.5-RND) 'add noise to land contour.
1530 IF((LAX(I)>BOT)AND(LAX(I)<(BOT+30)))THEN LAY(I)=198 ' landing field
1540 IF(LAY(I)>198)THEN LAY(I)=198
1550 NEXT
1560 NE=10:DIM EXPL(NE,1):FOR I=0 TO NE:READ EXPL(I,0),EXPL(I,1):NEXT'Explosion
1570 DATA 0,10,1,7,2,8,3,3,4,2,5,8,6,7,7,1,8,6,9,2,10,0
1580 DIM IBMX(75),IBMY(75) ' Get IBM Logo.
1590 FOR I=0 TO 75:READ IBMX(I):NEXT
1600 FOR I=0 TO 75 STEP 2:READ IBMY(I):IBMY(I+1)=IBMY(I):NEXT
1610 DATA 0,4,7,13.5,18,21.5,27,30,0,4,7,14.5,18,22.5,26,30,1,3,8,10,12.5,15,19,23,25.5,29,1,3,8,14.5,19,24,25,29,1,3,8,14.5,19,21,21.6,26.4,27,29,1,3,8,10,12.5,15,19,21,22.3,25.7,27,29,0,4,7,14.5,18,21,23,25,27,30,0,4,7,13.5,18,21,23.5,24.5,27,30
1620 DATA 0,0,0,0,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7
1630 DIM MM(88),TUNE(150,1):FOR I=0 TO 6:MM(I)=32767:NEXT ' Get success tune.
1640 FOR I=7 TO 88: MM(I)=INT(36.8*(2^(1/12))^(I-6)):NEXT
1650 FOR I=1 TO 150:READ A,TUNE(I,1):TUNE(I,0)=MM(A):NEXT
1660 'Blue Danube Waltz by J.S.Strauss
1670 DATA 42,4,46,4,49,4,49,4,0,4,61,2,0,2,61,2,0,6,58,2,0,2,58,2,0,6,42,4,42,4
1680 DATA 46,4,49,4
1690 DATA 49,4,0,4,61,2,0,2,61,2,0,6,59,2,0,2,59,2,0,6,41,4,41,4,44,4,51,4,51,4
1700 DATA 0,4,63,2,0,2,63,2,0,6,59,2,0,2
1710 DATA 59,2,0,6,41,4,41,4,44,4,51,4,51,4,0,4,63,2,0,2,63,2,0,6,58,2,0,2,58,2
1720 DATA 0,6,42,4
1730 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2,66,2,0,6,61,2,0,2,61,2,0,6,42,4
1740 DATA 42,4,46,4,49,4,54,4,0,4,66,2,0,2
1750 DATA 66,2,0,6,63,2,0,2,63,2,0,6,44,4,44,4,47,4,51,2,0,2,51,14,0,2,48,4
1760 DATA 49,4,58,16
1770 DATA 54,4,46,4,46,8,44,4,51,8,49,4,42,4,0,2,42,2,42,4,0,8,49,2,0,2,47,2
1780 DATA 0,6,49,2,0,2
1790 DATA 47,2,0,6,49,4,58,16,56,4,49,2,0,2,46,2,0,6,49,2,0,2,46,2,0,6,49,4
1800 DATA 56,16,54,4,49,2,0,2,47,2,0,6,49,2,0,2,47,2,0,6,49,4,58,16
1810 DATA 56,4,49,4,54,4,56,4,58,4,61,8,59,4,58,2,58,2,58,4,56,2,0,2,54,4,0,8
1820 DIM TUNE1(82,1):FOR I=1 TO 82:READ A,TUNE1(I,1):TUNE1(I,0)=MM(A):NEXT
1830 '"STARS AND STRIPES FOREVER - SOUSA "
1840 DATA 54,6,54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3
1850 DATA 51,3,51,6,50,3,51,3
1860 DATA 54,6,51,3,54,3,52,12,49,6,0,3,49,3,49,6,48,3,49,3
1870 DATA 49,6,48,3,49,3
1880 DATA 52,16,0,2,51,3,49,3,51,3,54,9,56,9,56,3,49,16,0,2,54,6
1890 DATA 54,6,52,3,51,3,51,6,50,3,51,3,51,16,0,2,50,3,51,3,51,6,50,3 ,51,3
1900 DATA 52,3,51,3,49,5,46,1,49,12,47,6,0,3,47,3,47,6,46,3,47,3,50,6,49,3,47,3
1910 DATA 59,15,0,3,47,3,49,3,51,3,54,1,0,2,47,3,49,3,51,3,54,1,0,2,42,3,44,5
1920 DATA 51,1,49,12,47,1
1930 ADVAN=0:GAUGE=0
1940 A$=INKEY$:IF A$="" GOTO 1940
1950 S=0:RETURN
1960 '############## Get New SHIP picture #########################
1970 ON INT(1.8+TOLD/10) GOSUB 2010,2150,2290 'Erase old picture.
1980 XOLD=X:YOLD=Y:TILTOLD=TILT:TOLD=T
1990 ON INT(1.8+T/10) GOSUB 2010,2150,2290 'Draw new picture.
2000 TOLD=T:NEWPIC=0:RETURN
2010 ON TILTOLD GOTO 2020,2030,2040,2050,2060,2070,2080,2090,2100,2110,2120,2130,2140
2020 PUT(XOLD,YOLD),M1:RETURN
2030 PUT(XOLD,YOLD),M2:RETURN
2040 PUT(XOLD,YOLD),M3:RETURN
2050 PUT(XOLD,YOLD),M4:RETURN
2060 PUT(XOLD,YOLD),M5:RETURN
2070 PUT(XOLD,YOLD),M6:RETURN
2080 PUT(XOLD,YOLD),M7:RETURN
2090 PUT(XOLD,YOLD),M8:RETURN
2100 PUT(XOLD,YOLD),M9:RETURN
2110 PUT(XOLD,YOLD),M10:RETURN
2120 PUT(XOLD,YOLD),M11:RETURN
2130 PUT(XOLD,YOLD),M12:RETURN
2140 PUT(XOLD,YOLD),M13:RETURN
2150 ON TILTOLD GOTO 2160,2170,2180,2190,2200,2210,2220,2230,2240,2250,2260,2270,2280
2160 PUT(XOLD,YOLD),R1:RETURN
2170 PUT(XOLD,YOLD),R2:RETURN
2180 PUT(XOLD,YOLD),R3:RETURN
2190 PUT(XOLD,YOLD),R4:RETURN
2200 PUT(XOLD,YOLD),R5:RETURN
2210 PUT(XOLD,YOLD),R6:RETURN
2220 PUT(XOLD,YOLD),R7:RETURN
2230 PUT(XOLD,YOLD),R8:RETURN
2240 PUT(XOLD,YOLD),R9:RETURN
2250 PUT(XOLD,YOLD),R10:RETURN
2260 PUT(XOLD,YOLD),R11:RETURN
2270 PUT(XOLD,YOLD),R12:RETURN
2280 PUT(XOLD,YOLD),R13:RETURN
2290 ON TILTOLD GOTO 2300,2310,2320,2330,2340,2350,2360,2370,2380,2390,2400,2410,2420
2300 PUT(XOLD,YOLD),RR1:RETURN
2310 PUT(XOLD,YOLD),RR2:RETURN
2320 PUT(XOLD,YOLD),RR3:RETURN
2330 PUT(XOLD,YOLD),RR4:RETURN
2340 PUT(XOLD,YOLD),RR5:RETURN
2350 PUT(XOLD,YOLD),RR6:RETURN
2360 PUT(XOLD,YOLD),RR7:RETURN
2370 PUT(XOLD,YOLD),RR8:RETURN
2380 PUT(XOLD,YOLD),RR9:RETURN
2390 PUT(XOLD,YOLD),RR10:RETURN
2400 PUT(XOLD,YOLD),RR11:RETURN
2410 PUT(XOLD,YOLD),RR12:RETURN
2420 PUT(XOLD,YOLD),RR13:RETURN
2430 '################ Advanced-Lander Landing Field ##########################
2440 SCREEN 1:COLOR 0,1:CLS:LY(1)=0
2450 BEEP:LOCATE 1,1:PRINT"Advanced Lander":PRINT"Landing Fall":PRINT"less than -10-"